<template>
  <div id="myChart">
  </div>
</template>
<script setup lang="ts">
import {defineComponent, toRefs, reactive, onMounted} from 'vue'
import * as echarts from 'echarts'

const state = reactive({
  option: {
    title: {
      text: 'Referer of a Website',
      subtext: 'Fake Data',
      left: 'center'
    },
    tooltip: {
      trigger: 'item'
    },
    legend: {
      orient: 'vertical',
      left: 'left'
    },
    grid: {
      top: '4%',
      left: '2%',
      right: '4%',
      bottom: '0%',
      containLabel: true,
    },
    series: [
      {
        name: 'Access From',
        type: 'pie',
        radius: '50%',
        data: [
          {value: 1048, name: 'Search Engine'},
          {value: 735, name: 'Direct'},
          {value: 580, name: 'Email'},
          {value: 484, name: 'Union Ads'},
          {value: 300, name: 'Video Ads'}
        ],
        emphasis: {
          itemStyle: {
            shadowBlur: 10,
            shadowOffsetX: 0,
            shadowColor: 'rgba(0, 0, 0, 0.5)'
          }
        }
      }
    ]
  },
})
const initEcharts = () => {
  let myChart = echarts.init(document.getElementById('myChart'))
  // 绘制图表
  myChart.setOption(state.option)
}

onMounted(() => {
  initEcharts()
})
</script>
<style scoped>
#myChart {
  width: 700px;
  height: 700px;
}
</style>